v4.0
キャラクタ リギング
既存のスパインの上のシャドウの階層(チェインまたはヌルの階層)をトレースします。 シャドウ オブジェクトが作成され、スパインの各椎にポーズで拘束されます。
oShadow = MakeShadowSpine( Spline, Base, Vertebra, TopVertebra, ShadowParent, [ChestTop], [IconScale], [ShadowType], [ShadowCharacterSetName] ); |
Shadow JScript オブジェクトを戻します。
| パラメータ | タイプ | 詳細 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Spline | 文字列 | トレースするスパインのスプライン オブジェクト。 | ||||||||||
| Base | 文字列 | トレースするスパインのベース(ヒップ)オブジェクト。 | ||||||||||
| Vertebra | 文字列 | トレースするスパインの椎のコレクション。 | ||||||||||
| TopVertebra | 文字列 | トレースするスパインの最上部の椎のオブジェクト(胸)。 | ||||||||||
| ShadowParent | 文字列 | 新しいシャドウ階層の親。 | ||||||||||
| ChestTop | 文字列 | (オプション)トレースするスパインの胸の最上部のオブジェクト。 空の場合には、スパインがこのオプションなしで作成されていると想定します。 | ||||||||||
| IconScale | ダブル | スパインのスケール値。 シャドウ スケルトンのアイコンの大きさを調整します。
デフォルト値: 1.0 |
||||||||||
| ShadowType | Integer | 描画するシャドウ トレーシングのタイプ。 わかりやすくするため、デフォルトのリグ ジェネレータでは、シャドウ タイプのユーザ
インターフェイスのオプションの番号が横に表示されます。 このオプションではボックス
シャドウはトレースできませんが、コンポーネントとしては実行可能です。ボックス
シャドウは各コンポーネントの体積を仮定する必要があるためです。
デフォルト値: 1
|
||||||||||
| ShadowCharacterSetName | 文字列 | このチェインで使用する必要があるキャラクタ セットの名前。
デフォルト値: "" |
/*
Make a spine with 3 vertebrae, then attach
a skeleton shadow to it
*/
var Base = GetPrim("Null", "Base");
var Top = GetPrim("Null", "Top");
var Depth = GetPrim("Null", "Depth");
var TopDepth= GetPrim("Null", "TopDepth");
/*
Make Spine
*/
var lXfm = XSIMath.CreateTransform();
lXfm.SetTranslationFromValues(0,0,0);
Base.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,8,0);
Top.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,2,0);
Depth.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,6,0);
TopDepth.Kinematics.Global.Transform = lXfm;
var Spine = MakeSpine( ActiveSceneRoot, //model
ActiveSceneRoot, //parent
3, //number of vertebrae
0, //quat spine with polygon vertebrae
false, //non-stretchy
Base, Top,
Depth,TopDepth);
/*
Make Shadow
*/
var ShadowSpine = MakeShadowSpine(Spine.Curve, Spine.base, Spine.Vertebra, Spine.TopVertebra, ActiveSceneRoot,Spine.chestTop);
DumpShadowSpine(ShadowSpine);
function DumpShadowSpine(inShadowSpine)
{
logmessage ("Data in the returned spine object:");
logmessage ("---------------------------------");
logmessage ("Spline : " + inShadowSpine.Spline);
logmessage ("TopVertebra : " + inShadowSpine.TopVertebra );
logmessage ("Scale : " + inShadowSpine.Scale);
logmessage ("Parent : " + inShadowSpine.Parent);
logmessage ("#ShadowObj : " + inShadowSpine.Shadows.count);
for(var b=0;b<inShadowSpine.Shadows.count;b++)
{logmessage (" Shadow" + b + ": " + inShadowSpine.Shadows(b));}
logmessage ("#EnvelopeObj: " + inShadowSpine. Envelope.count);
for(var b=0;b<inShadowSpine.Envelope.count;b++)
{logmessage (" EnvelopeObj" + b + ": " + inShadowSpine.Envelope(b));}
logmessage ("#Vertebrae : " + inShadowSpine.Vertebra.count);
for(var b=0;b<inShadowSpine.Vertebra.count;b++)
{logmessage (" Vertebra" + b + ": " + inShadowSpine.Vertebra(b));}
logmessage ("#UpVectors : " + inShadowSpine.UpVectors.count);
for(var b=0;b<inShadowSpine.UpVectors.count;b++)
{logmessage (" UpVector" + b + ": " + inShadowSpine.UpVectors(b));}
}
//results from running this script:
//INFO : "Data in the returned spine object:"
//INFO : "---------------------------------"
//INFO : "Spline : crvlist"
//INFO : "TopVertebra : TopVertebra"
//INFO : "Scale : 1"
//INFO : "Parent : Scene_Root"
//INFO : "#ShadowObj : 6"
//INFO : " Shadow0: SpineRoot"
//INFO : " Shadow1: Spine1"
//INFO : " Shadow2: Spine2"
//INFO : " Shadow3: Spine3"
//INFO : " Shadow4: Chest"
//INFO : " Shadow5: ChestEffector"
//INFO : "#EnvelopeObj: 0"
//INFO : "#Vertebrae : 3"
//INFO : " Vertebra0: Vertebra"
//INFO : " Vertebra1: Vertebra1"
//INFO : " Vertebra2: Vertebra2"
//INFO : "#UpVectors : 4"
//INFO : " UpVector0: Shadow_upVa"
//INFO : " UpVector1: Shadow_upVa1"
//INFO : " UpVector2: Shadow_upVa2"
//INFO : " UpVector3: Shadow_upVa3"
|